/**
 * 给定数组，两种操作，最多选一种做一次：
 * 1. ai += x, x是[1, n/i]的任意数
 * 2. ai *= x, x是[1, n/i]的任意数
 * 注意 SIGMA{n/i} 是 nlogn 量级
 * 因此暴力即可
 * 一共只有 2NlogN 的可能的操作
 */
#include <bits/stdc++.h>
#include <bits/extc++.h>
using namespace std;

using llt = long long;
using vi = vector<int>;
using vll = vector<llt>;

int N;
vll A;

llt proc(){
    set<int> s;
    llt sum = 0;
    for(auto i : A) sum ^= i;

    llt ans = sum;
    for(int i=N-1;i>=0;--i){
        auto ai = A[i];
        int sz = N / (i + 1);
        for(int j=1;j<=sz;++j){
            llt tmp = sum ^ ai ^ (ai + j);
            ans = max(ans, tmp);
            tmp = sum ^ ai ^ (ai * j);
            ans = max(ans, tmp);
        }
    }

    return ans;
}

void work(){
    cin >> N;
    A.assign(N, {});
    for(auto & i : A) cin >> i;
    cout << proc() << endl;
    return;
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    int nofkase = 1;
    // cin >> nofkase;
    while(nofkase--) work();
    return 0;
}